/*
 * @lc app=leetcode.cn id=941 lang=cpp
 *
 * [941] 有效的山脉数组
 */

// @lc code=start
class Solution
{
public:
  bool validMountainArray(vector<int>& arr)
  {
    int n = arr.size();
    int L = 1;
    // find first peek
    while (L < n && arr[L] > arr[L - 1])
      ++L;
    int R = L;
    for (; R < n; ++R) {
      if (arr[R] >= arr[R - 1])
        return false;
    }
    // L != 1 // 防止只有一个元素或arr全部递减
    // L != n // 防止arr全部递增
    return L != 1 && L != n;
  }
};
// @lc code=end
